//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this sample source code is subject to the terms of the Microsoft
// license agreement under which you licensed this sample source code. If
// you did not accept the terms of the license agreement, you are not
// authorized to use this sample source code. For the terms of the license,
// please see the license agreement between you and Microsoft or, if applicable,
// see the LICENSE.RTF on your install media or the root of your tools installation.
// THE SAMPLE SOURCE CODE IS PROVIDED "AS IS", WITH NO WARRANTIES OR INDEMNITIES.
//
// Abstract:
//
//  Pddwrapper.cpp requires a struct DEVICE_LAYOUT to map scancodes to VKEYs.
//  It uses only the mapping table portion:
//
//      typedef struct tagDEVICE_LAYOUT {
//        DWORD dwSize;                     // required, set to sizeof(DEVICE_LAYOUT)
//        WORD wPddMask;                    // ignored
//      
//        // Scan code to virtual key
//        ScanCodeToVKeyData **rgpscvk;     // required
//        UINT cpscvk;                      // required
//      
//        // Remapping functions
//        PFN_KEYBD_REMAP pfnRemapKey;      // ignored, may be NULL
//      } DEVICE_LAYOUT, *PDEVICE_LAYOUT;
//
//
//  Your platform must provide an implementation.  It may:
//      A) implement a trivial mapping table for (at least) the following:
//          VK_UP
//          VK_DOWN
//          VK_LEFT
//          VK_RIGHT
//          VK_RETURN
//
//          - or -
//
//      B) use the full-featured DEVICE_LAYOUT that is probably already available
//         in your production keyboard driver
//
#include <keybdpdd.h>
#include <devicelayout.h>
#include <uldrkeypad.h>


extern "C" BOOL BuiltInKeypad_00000409(PDEVICE_LAYOUT pDeviceLayout);
 
BOOL UldrKeypadGetDeviceLayout(PDEVICE_LAYOUT pDeviceLayout)
{
    return BuiltInKeypad_00000409( pDeviceLayout );
}


